#include <sys/types.h>          /* See NOTES */
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <input_manager.h>
#include <sys/time.h>  // 用于 gettimeofday()
#include <tslib.h>
#include <input_manager.h>


// 初始化输入系统，然后不断从缓冲区读取事件并处理打印
int main(int argc, char **argv)
{   
    int ret;
    InputEvent tInputEvent_for_test;

    // 注册所有输入设备
    RegisterAllInputDevs();
    // 为每个输入设备创建线程
    InputDevsInit();


    while (1)
    {   
        // 获取输入事件
        ret = GetInputEvent(&tInputEvent_for_test);
        if (ret == -1)
        {
            printf("GetInputEvent failed.\n"); // 失败则打印错误提示
        }
        // GetInputEvent成功，打印输入事件tInputEvent_for_test的信息
        else
        {
            // printf("GetInputEvent succeed!\n");
            if (tInputEvent_for_test.iType == INPUT_TYPE_TOUCH) // 用宏更好，比较清晰明了
            {   
                printf("iType : TouchScreenInput\n");
                printf("iX : %d\n", tInputEvent_for_test.iX);
                printf("iY : %d\n", tInputEvent_for_test.iY);
                printf("iPressure : %d\n", tInputEvent_for_test.iPressure);
            }
            else if (tInputEvent_for_test.iType == INPUT_TYPE_NET) // 用宏更好，比较清晰明了
            {   
                printf("iType : NetInput\n");
                printf("str : %s\n", tInputEvent_for_test.str);
            }
        }
    }
	return 0;
}

